package com.yunhe.estatemanage.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunhe.common.annotation.NameTitle;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.List;

/**
 * @ClassName: ReportRepair
 * @Description:
 * @author: GongDaCheng
 * @Date: 9:31 2021/9/3
 */
@Data
@ApiModel(value = "ReportRepair", description = "报事报修模型")
public class ReportRepair implements Serializable {

    private static final long serialVersionUID = 8527616365817536058L;

    /**
     * 事项id
     */
    @ApiModelProperty("事项id")
    private Long id;

    /**
     * 事项名称
     */
    @ApiModelProperty("事项名称")
    private String title;

    /**
     * 问题描述（内容）
     */
    @ApiModelProperty(value = "问题描述（内容）", required = true)
    private String problemDescription;

    /**
     * 问题照片链接，多张用逗号隔开
     */
    @ApiModelProperty(value = "问题照片链接，多张用逗号隔开")
    private String problemPictures;

    /**
     * 处置时间 1(即刻) 2(3-6小时内) 3(12小时内) 4(24小时内)
     */
    @ApiModelProperty(value = "处置时间 1(即刻) 2(3-6小时内) 3(12小时内) 4(24小时内)", required = true)
    private String disposalTime;

    /**
     * 提交时间
     */
    @ApiModelProperty("提交时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String submissionTime;

    /**
     * 当前状态 进行中（1待派发 2处理中） 已完成（3已完成 4撤销 5中止）
     */
    @ApiModelProperty("当前状态 进行中（1待派发 2处理中） 已完成（3已完成 4撤销 5中止）")
    private String currentStatus;

    /**
     * 处理节点 1提交需求 2需求分派 3需求处理 4已完成 5撤销 6中止 7退回
     */
    @ApiModelProperty("处理节点 1提交需求 2需求分派 3需求处理 4已完成 5撤销 6中止 7退回")
    private String processNode;

    /**
     * 处理反馈
     */
    @ApiModelProperty("处理反馈")
    private String processingFeedback;

    /**
     * 处理时间
     */
    @ApiModelProperty("处理时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String processingTime;

    /**
     * 处理照片链接，多张用逗号隔开
     */
    @ApiModelProperty("处理照片链接，多张用逗号隔开")
    private String processPictures;

    /**
     * 组织id
     */
    @ApiModelProperty(value = "组织id")
    private Long orgId;

    /**
     * 组织名称
     */
    @ApiModelProperty("组织名称")
    @NameTitle(nameCode = "orgId",nameType = "ORG")
    private String orgName;

    /**
     * 企业id
     */
    @ApiModelProperty(value = "企业id", required = true)
    private Long companyId;

    /**
     * 企业名称
     */
    @ApiModelProperty("企业名称")
    @NameTitle(nameCode = "companyId",nameType = "Company")
    private String companyName;

    /**
     * 归属园区id
     */
    @ApiModelProperty(value = "归属园区id", required = true)
    private Long stationId;

    /**
     * 归属园区名称
     */
    @ApiModelProperty("归属园区名称")
    @NameTitle(nameCode = "stationId",nameType = "RealStation")
    private String stationName;

    /**
     * 厂房id
     */
    @ApiModelProperty(value = "厂房id", required = true)
    private Long officeId;

    /**
     * 厂房名称
     */
    @ApiModelProperty("厂房名称")
    @NameTitle(nameCode = "officeId",nameType = "OFFICE")
    private String officeName;

    /**
     * 联系人id
     */
    @ApiModelProperty(value = "联系人id", required = true)
    private Long contactPersonId;

    /**
     * 联系人名称
     */
    @ApiModelProperty("联系人名称")
    @NameTitle(nameCode = "contactPersonId",nameType = "Employee")
    private String contactPersonName;

    /**
     * 联系人联系方式
     */
    @ApiModelProperty(value = "联系人联系方式", required = true)
    private String contactPhone;

    /**
     * 当前处理人id
     */
    @ApiModelProperty("当前处理人id")
    private Long currentOperatorId;

    /**
     * 当前处理人名称
     */
    @ApiModelProperty("当前处理人名称")
    @NameTitle(nameCode = "currentOperatorId",nameType = "USER")
    private String currentOperatorName;

    /**
     * 最后操作者id
     */
    @ApiModelProperty("最后操作者id")
    private Long lastOperatorId;

    /**
     * 最后操作者名称
     */
    @ApiModelProperty("最后操作者名称")
    @NameTitle(nameCode = "lastOperatorId",nameType = "USER")
    private String lastOperatorName;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String updateTime;

    /**
     * 是否催办 0未催办 1已催办
     */
    @ApiModelProperty("是否催办 0未催办 1已催办")
    private String isUrge;

    /**
     * 是否删除 0未删除 1已删除
     */
    @ApiModelProperty("是否删除 0未删除 1已删除")
    private String isDelete;

    @ApiModelProperty("反馈历史")
    private List<ProcessStatus> feedbackHistory;
}
